// 定义单个字段的类型
interface FlowCustomFieldType {
    value: string;
    isRequiredPrefix: boolean;
}

// 定义 FLowCustomNameList 的类型
interface FLowCustomNameListType {
    [key: string]: FlowCustomFieldType;
}

const flowablePrefix: string = "flowable:"; // 前缀必须加，不然有的会报错

// 定义的插入参数
export const FLowCustomNameList: FLowCustomNameListType = {
    DOCUMENTATION: {
        value: "documentation",
        isRequiredPrefix: true
    }, // 基本信息-描述字段
    ASSIGNMENT: {
        value: "assignment",
        isRequiredPrefix: true
    }, // 基本信息-描述字段
    DATATYPE: {
        value: "dataType",
        isRequiredPrefix: true
    }, // 基本信息-描述字段
    // 可以有更多的键
};

// 使用 Object.entries 和 reduce 来处理并展平对象
const processedList = Object.entries(FLowCustomNameList).reduce((acc, [key, item]) => {
    acc[key] = item.isRequiredPrefix
        ? `"${flowablePrefix}${item.value}"`
        : `"${item.value}"`; // 确保所有值都使用双引号包裹
    return acc;
}, {} as { [key: string]: string });


// 动态导出所有键
// 手动列出所有键并导出
export const {
    DOCUMENTATION,
    ASSIGNMENT,
    ASSIGNEETYPE,
    // 如果有更多的键，可以继续添加
} = processedList;